The only solution I found is to split the list again using sa_split_list like this:
SELECT
FirstName,
LastName,
LIST(ID) as lst,
CASE
WHEN 1 IN (SELECT row_value from sa_split_list(lst)) THEN 'Admin'
WHEN 2 IN (SELECT row_value from sa_split_list(lst)) THEN 'Moderator'
WHEN 3 IN (SELECT row_value from sa_split_list(lst)) THEN 'Owner'
ELSE
String(FirstName, ' ', LastName)
END as Description
FROM Users
Group By FirstName, LastName;
or
SELECT
FirstName,
LastName,
LIST(ID) as lst,
CASE
WHEN Exists(SELECT 1 from sa_split_list(lst) where row_value = 1) THEN 'Admin'
WHEN Exists(SELECT 1 from sa_split_list(lst) where row_value = 2) THEN 'Moderator'
WHEN Exists(SELECT 1 from sa_split_list(lst) where row_value = 3) THEN 'Owner'
ELSE
String(FirstName, ' ', LastName)
END as Description
FROM Users
Group By FirstName, LastName;
and that did the job, i still think the performance will be bad for big queries...