Maybe this will help: Consider null to be the absence of any data; it is an unknown. A zls (zero length string or "") is something. However it is merely a string with no characters in it. Either way, a table field looks the same with either in it. Is Null will not find records with zls in them. Nor will WHERE [someField] = "" find nulls. The reason you cannot use WHERE [someField] = Null is because NOTHING is ever equal to null - not even null itself. Thus you have to use intrinsic functions (Is Null in sql; IsNull in code).
To find both types of records in one query you'd need WHERE [someField] = "" OR [someField] Is Null
If you can, the better approach might be to avoid having zls values. If you can't alter the table fields to not allow zls then part of your operation probably should be to run a query against the main data that converts zls field values to null.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.