Use un índice basado en funciones:
create unique index only_one_yes on mytable
(case when col='YES' then 'YES' end);
Oracle solo indexa claves que no son completamente nulas, y la expresión CASE aquí asegura que todos los valores 'NO' se cambien a nulos y, por lo tanto, no se indexen.