Это потому, что COUNT (*) просто считает результирующие строки для каждой группы
Если в вашем запросе нет предложения GROUP BY, то существует одна неявная группа всех результатов, поэтому вы просто получаете количество строк.
Если вы добавите GROUP BY к вашему запросу, как в следующем примере, вы получите желаемый результат:
SELECT (COUNT(*) AS ?count)
WHERE
{
?a <http://xmlns.com/foaf/0.1/topic_interest> ?s}
} GROUP BY ?s