Try:
;WITH cte AS (SELECT ROW_NUMBER() OVER (ORDER BY _Name) AS RowId, ID, _Name FROM #temp1)
,cte1 AS (SELECT cte.RowID, cte.ID, m._Name, s.value FROM cte CROSS APPLY STRING_SPLIT(cte.ID, ',') s
INNER JOIN #master m ON s.value = m.ID)
SELECT ID, STRING_AGG(_Name, ',') WITHIN GROUP (ORDER BY _NAME) AS _Name
FROM cte1 GROUP BY ID