Null records being excluded from the result set is a result of what is called three-value logic (3VL) in SQL. Refer to the following page for a detailed explanation.
A brief summary
The result of any comparison will be either TRUE, FALSE or UNKNOWN. TRUE and FALSE are easy to understand when there is actually a value to compare - the comparison is made and either the established criteria is met or not (TRUE or FALSE). Example: Reason = A, Reason != B, etc.
However, when a comparison is made against a NULL value, the result is UNKNOWN, and UNKNOWN results are not returned in a result set.
As certain inputs for your comparison are null, those rows evaluate to UNKNOWN and are excluded. There is a solution to your request, but it requires some additional actions.
You can convert your null values to literal blank values so they are no longer considered null values and will not be automatically filtered out.