On SQL 2017 and later, this is straightforward with the string_agg aggregate:
SELECT category, string_agg(name, ',') WITHIN GROUP (ORDER BY "order")
FROM TestOrder
GROUP BY category
On earlier versions you can use a kludge with XML:
SELECT cat.category, substring(t.list, 1, len(t.list) - 1)
FROM (SELECT DISTINCT category FROM TestOrder) AS cat
CROSS APPLY (SELECT t.name + ','
FROM TestOrder t
WHERE cat.category = t.category
ORDER BY t."order"
FOR XML PATH('')) AS t(list)