W bieżącym zapytaniu zliczasz liczbę wierszy w tabeli chorób, raz używając kolumny condition_id, raz używając kolumny person_id. Ale liczba wierszy jest taka sama — dlatego w rezultacie otrzymujesz 1.
Myślę, że musisz znaleźć liczbę różnych wartości dla tych kolumn. Można to zrobić za pomocą liczby odrębnych:
select (COUNT(DISTINCT condition_id)/COUNT(DISTINCT person_id)) as prevalence
from disease
where condition_id=12345;