STUFF
works on a single row, but you're feeding it all the rows selected in the inner select.
Try replacing it with;
select STUFF(', ' + TempGroupEmailEmp.EmpName,1,2,'') as tmp from TempGroupEmailEmp
(Or, better yet, don't prefix the EmpName
with ', ' just to then remove it using STUFF
.)
Hope this helps,
Fredrik