Parece-me que você deveria
GROUP BY a.id, c.id -- agrupamento por a.id significa apenas que você normalmente terá vários c.id s por a.id , e você está apenas recebendo um "aleatório" deles. Isso parece uma questão de correção básica. Depois de corrigir isso, um SELECT COUNT(*) FROM inicial etc etc deve então definitivamente fornecer o número de linhas que a consulta a seguir retornará, para que você possa preparar seu pager de acordo.