Not exactly sure that I follow your requirements, but it sounds like you could use UNION to combine two data sets, one with a GROUP BY and one without. You're not including any aggregate logic in your select, so I assume that in this instance you're using GROUP BY to achieve the same effect as DISTINCT and avoid repeated rows in the non-private list of meetings (??).
SELECT
[DATE],
[TypeofMeeting],
[NameofMeeting]
FROM
dbo.meetings
WHERE
[TypeofMeeting] = 'private'
UNION ALL
SELECT
[DATE],
[TypeofMeeting],
[NameofMeeting]
FROM
dbo.meetings
WHERE
[TypeofMeeting] <> 'private'
GROUP BY
[DATE],
[TypeofMeeting],
[NameofMeeting]