I actually cleaned up the query to make it more generic it should have been just like the other.
AND n.STAFFID = isnull(@STAFFID, n.STAFFID)
The main question becomes why the IsNull function doesn't show the same results as a longer statement that tests for the same thing.