certo, perché tu fai una WHERE sulla tabella B. Dovresti considerare ANCHE il NULL

.... WHERE a.campo=x AND (b.campo=y OR b.campo=NULL)

la sintassi della parte =NULL dipende dal linguaggio, cerca quella giusta