Avoid using NOT IN whilst comparing nullable columns. Use NOT EXISTS instead.
When NOT IN is used in a query, SQL Server compares each result to null (even if no rows are returned). NOT EXISTS does not perform a comparison with nulls.
Visit the DevX Tip Bank