NOT IN ( SELECT ... ) é muito mal otimizado, especialmente em versões mais antigas. Mude para isso:
SELECT abc.*
FROM abc
LEFT JOIN zyx ON zyx.abc_id = abc.id
WHERE zyx.abc_id IS NULL;
AND zyx.id = 12345 ;
Para zyx, tenha
INDEX(id, abc_id) ou INDEX(abc_id, id) Se
zyx.id é a PRIMARY KEY , sua consulta não faz muito sentido - por que testar uma única linha (12345)?