Na sua consulta atual você conta o número de linhas na tabela de doenças, uma vez usando a coluna condition_id, uma vez usando a coluna person_id. Mas o número de linhas é o mesmo - é por isso que você obtém 1 como resultado.
Acho que você precisa encontrar o número de valores diferentes para essas colunas. Isso pode ser feito usando contagem distinta:
select (COUNT(DISTINCT condition_id)/COUNT(DISTINCT person_id)) as prevalence
from disease
where condition_id=12345;