Your sample code worked as expected for me. I've had a few problems with that method with large strings (50k characters or more). Here is a different version that I've found a bit more robust.
DECLARE @consolidatedNicknames varchar(2000)
SET @consolidatedNicknames = ''
SELECT @consolidatedNicknames =
STUFF((SELECT ', ' + username.nickname
FROM username
WHERE name IN ('John','Marc')
FOR XML PATH(''),TYPE).value('.','VARCHAR(MAX)')
, 1, 2, '')