• Nice question, although the 'explanation' is confusing and does not explain anything.

    To find the real cause of the observed behavior, we can do a simple conversion. The statement

    s.Stat NOT IN (NULL, 'Idle')

    is equal to

    (s.Stat <> NULL) AND (s.Stat <> 'Idle')

    The comparison of any value with a NULL results to UNKNOWN, hence the result of the NOT IN condition is UNKNOWN for every row in the Statuses table (UNKNOWN, but not FALSE, as erroneously stated in the explanation). This is why the result set is empty.