Une requête EXISTS est celle à utiliser si vous n'êtes pas intéressé par le nombre d'enregistrements :
select 'Y' from dual where exists (select 1 from mytable where parent_id = :id)
Cela renverra 'Y' si un enregistrement existe et rien sinon.
[En ce qui concerne votre question sur "uniqueResult" d'Hibernate - tout cela ne fait que renvoyer un seul objet lorsqu'il n'y a qu'un seul objet à renvoyer - au lieu d'un ensemble contenant 1 objet. Si plusieurs résultats sont renvoyés, la méthode lève une exception.]