This will do the trick for you.
select
t3.Name,
left(t3.Roles, len(t3.Roles)-1) as Roles,
t3.Dept
from
(select
t2.Name,
t2.Dept,
(select t1.[Role] + ','
from Table1 as t1
where
t1.Name = t2.Name and
t1.Dept = t2.Dept
order by t1.[Role]
for xml path('')) as Roles
from Table1 as t2
group by t2.Name, t2.Dept) as t3
This is taken from the first example in "The blackbox XML methods" from this page
https://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/
The inner query builds the list of Roles as an xml. The xml path('') parameter is empty and therefor you do not get the xml markup but only the comma separated list.
The outer query is only there to remove the comma at the end of each line.
Group by t2.Name, t2.Dept makes sure that you will only get one row for each unique combination of Name+Dept.