Nenhum registro MySQL retorna quando ultrapassa um certo limite?
Você tem distinto no lugar errado para a contagem. Você está contando todas as linhas (250) e selecionando os valores de linha distintos. Há apenas 1 linha que é 250.
O que você quis dizer foi select count(distinct p.*) que retornará 198