Попробуйте изменить его следующим образом:
SELECT C.CategoryId
, C.CategoryName
, ISNULL(COUNT(CC.CharityId), 0) as CharityCount
, C.IsDeleted
FROM Charity.Categories C
LEFT JOIN Charity.CharityCategories CC on C.CategoryId = CC.CategoryId
LEFT JOIN Charity.Charities CH ON CC.CharityId = CH.CharityId
AND CH.IsApproved = 1 and CH.IsDeleted = 0
GROUP BY C.CategoryId, C.CategoryName , C.IsDeleted
Order By C.CategoryName
Ссылаясь на CH (Charities) в предложении WHERE, вы устанавливаете его таким образом, чтобы, когда эти значения были NULL (т. Е. Нет записей в благотворительных организациях), тогда данные издругие таблицы также исключаются.
Обычно я стараюсь по возможности включать все ограничения / фильтры в предложение объединения по этой причине.