Al posto tuo metterei una X di default nel data base per i campi vuoti e ti eviti cose successive. Basterebbe cercare o escludere i campi dove Fonte=X.

SELECT * FROM tabellaA as a, tabellaB as b
WHERE A.id=B.id and B.Fonte = 'x'
ORDER BY A.nominativo
LIMIT 0,30

oppure

SELECT * FROM tabA as A
LEFT JOIN tabB as B ON A.ID = B.ID
AND B.Fonte = 'x' // oppure != 'X' aseconda di come ti serve.
ORDER BY A.nominativo
LIMIT 0,30

Non vedo il problema.