You can try using the following query:
SELECT COUNT(DISTINCT programme_name) AS Count,
programme_type AS [Type]
FROM production
WHERE push_number=@push_number
GROUP BY programme_type
DISTINCT COUNT(*) will return a unique row for each unique count.
COUNT(DISTINCT <expression>): gives you expression for each row in a group and returns the number of unique, non-null values.