I had to change few things but try this:
create table #groupings (
ID int,
EventName varchar(255),
Venue varchar(255),
EventDate datetime
)
insert into #groupings
select 1,'Football','Arena','2013-10-04 09:58:42.670'
UNion
select 2,'Football','Arena','2013-10-04 09:58:42.670'
union
select 3,'Football','Arena','2013-10-04 10:45:42.670'
union
select 4,'Football','Arena','2013-10-04 09:58:42.670'
union
select 1,'Soccer','Field','2013-10-04 09:58:42.670'
union
select 2,'Soccer','Field','2013-10-04 09:38:42.670'
union
select 3,'Soccer','Field','2013-10-04 09:58:42.670'
union
select 4,'Soccer','Field','2013-10-04 09:28:42.670'
select EventName, Venue, min(EventDate),
substring((select ',' + cast(ID as varchar)
from #groupings g1
where g1.EventName= g2.EventName
order by g1.EventName
for xml path ('')),2, 1000) [Students]
from #groupings g2
group by EventName, Venue