Penso di aver trovato il problema, questa query:
SELECT serial AS id, serial AS descrizione FROM mg_prodotti WHERE id_articolo = '1' AND mg_prodotti.dir='uscita' AND id=(SELECT MAX(id) FROM mg_prodotti AS prodotti WHERE prodotti.id_articolo=mg_prodotti.id_articolo AND prodotti.serial=mg_prodotti.serial AND prodotti.dir='uscita')
non filtra i prodotti già usciti