codice:
where b.products_id is null 
and
......
and
b.products_quantity <='" . $stock_reorder_level . "'
Come gia' ti ho detto prima se il product_id e' NULL non puo' essere che products_quantity contenga qualcosa di utile, tutto il record e' NULL.

Inoltre non mi torna cosa vorresti fare con questa query.....
codice:
a.quantity <='" . $stock_reorder_level . "' 
and
b.products_quantity <='" . $stock_reorder_level
.... con questa tua affermazione:
Oltre a questo non voglio prendere in considerazione nella seconda table quei record che hanno un "Prodotto ID#" giā presente nella prima.
Se non hanno riferimento puoi solo avere la lista dei record non associati della prima tabella oppure avere la lista dei record della seconda che non risultassero associati alla prima. Ma la ricerca che vorresti fare tu prevede che i record siano associati quindi l'id presente in entrambe le tabelle.