The comparison
userid = (null OR '')
is invalid. First, the very syntax is wrong:
field = (value1 OR value2)
should be put either as
(field = value1) OR (field = value2)
or as
field IN (value1, value2)
Second, null is a special value, which stands for unknown, doesn’t matter, unapplicable etc. and that’s why null = null is equal not to True, but to null (does unknown equal to unknown? It’s unknown.) There are some exceptions when null = null is True (e.g. GroupBy). However, in order to be on the safe side do not put field = null or field in (..., null, ...), but field is null.
In your case
SELECT *
FROM users
WHERE (userid is null)
OR (userid = '')
solved SELECT * FROM USERS where userid = (null or ”) is this t sql query valid or not?