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)?