Ci sono NULL in taxon_name_element.parent_id
?
La domanda...
select taxon_id
from taxon_name_element
where taxon_id not in (
select parent_id
from taxon_name_element
)
...equivale a...
select taxon_id
from taxon_name_element
where
taxon_id <> parent_id_1
AND taxon_id <> parent_id_2
...
AND taxon_id <> parent_id_N
...dove parent_id_X
sono valori effettivi che sono attualmente nel parent_id
colonna. Se anche solo uno di essi è NULL, il corrispondente taxon_id <> parent_id_X
le espressioni "collassano" in NULL, trascinando con sé l'intera espressione WHERE.
Filtra i NULL per ottenere ciò che desideri:
select taxon_id
from taxon_name_element
where taxon_id not in (
select parent_id
from taxon_name_element
where parent_id is not null
)