I think the behaviour you’re seeing is described in SERVER-27442. It is a known ambiguity if you’re combining null and array notation with equality/inequality.
A quick workaround I can think of is using aggregation to determine the field type (array), and project the first element of the array. Something like: