количество строк которые нужно посчитать - нужно обернуть в агрегатную функцию COUNT,
и в конце запроса после условий сгруппировать по столбцам БЕЗ агрегатных функций.
Должно получиться что-то такое -
SELECT COUNT(contacts.id) AS Id_Qty, contact_group.name AS group
FROM contacts
INNER JOIN contact_group
ON contacts.group_id = contact_group.id
WHERE contacts.path
LIKE '43/44/45/%'
AND contacts.id != 45
GROUP BY contact_group.name
код можно сократить если использовать алиасы для имен таблиц
например SELECT c.id FROM contacts AS c (при работе с несколькими таблицами)
(в MS SQL Server можно опустить и AS - просто писать название колонки через пробел,
и 'INNER', там джоин без указания типа по умолчанию - как раз иннер)
p.s. и еще я сомневаюсь в порядке вывода, думаю если нужно количество айдишников для групп, логичнее выводить их в виде - группа1- 10 штук, группа2 - 5