Använd ett funktionsbaserat index:
create unique index only_one_yes on mytable
(case when col='YES' then 'YES' end);
Oracle indexerar bara nycklar som inte är helt null, och CASE-uttrycket här säkerställer att alla 'NO'-värden ändras till null och därför inte indexeras.