В текущата ви заявка вие преброявате броя на редовете в таблицата със заболяванията, веднъж използвайки колоната condition_id, веднъж използвайки колоната person_id. Но броят на редовете е същият - затова получавате 1 като резултат.
Мисля, че трябва да намерите броя на различните стойности за тези колони. Това може да стане с помощта на count distinct:
select (COUNT(DISTINCT condition_id)/COUNT(DISTINCT person_id)) as prevalence
from disease
where condition_id=12345;