Not in vs Not Exists

They both (“NOT IN” and “NOT EXIST”) have the same functionality with only one major difference:

"NOT IN" will return a "NULL" if there are any NULL column(s) in the subquery.
"NOT EXISTS" does not do that so if you want to be consistent always use "NOT EXISTS"

Reference:
http://decipherinfosys.wordpress.com/2007/01/21/32/