In Ihrer aktuellen Abfrage zählen Sie die Anzahl der Zeilen in der Krankheitstabelle, einmal mit der Spalte condition_id, einmal mit der Spalte person_id. Aber die Anzahl der Zeilen ist gleich - deshalb erhalten Sie als Ergebnis 1.
Ich denke, Sie müssen die Anzahl der verschiedenen Werte für diese Spalten finden. Dies kann mit Count Distinct:
erfolgenselect (COUNT(DISTINCT condition_id)/COUNT(DISTINCT person_id)) as prevalence
from disease
where condition_id=12345;