Nullable smallint column usage in a CASE Statement nested in a STUFF function
Another way to create your StatusList is, using STRING_AGG (From SQL Server 2017): 

SELECT STRING_AGG(x.status,',') FROM (
   SELECT
      ROW_NUMBER() OVER (PARTITION BY StatusId) as RowNum,
      CASE WHEN Status.Rescriced = 1 THEN ItemStatus + ' (Restricted)'
           ELSE ItemStatus END AS Status
   FROM Statuses) x


Above query is untested, and should be adapted to your situation.