Este artigo pode ser do seu interesse:
Em poucas palavras,
NOT IN
é ligeiramente diferente de NOT EXISTS
na maneira como os dois lidam com NULL
valores retornados pela subconsulta. Se não houver
NULL
valores, ambos executam um tipo em NESTED LOOP ANTI JOIN
, mas NOT IN
é um pouco mais eficiente.