An in
statement will be parsed identically to field=val1 or field=val2 or field=val3
. Putting a null in there will boil down to field=null
which won’t work.
(Comment by Marc B)
I would do this for clairity
SELECT *
FROM tbl_name
WHERE
(id_field IN ('value1', 'value2', 'value3') OR id_field IS NULL)