Using STRING_SPLIT will do what you want.
STRING_SPLIT
SELECT value AS food , SUM(x.count) AS count FROM record AS x CROSS APPLY string_split(REPLACE(REPLACE(x.food_preference, '[', ''), ']', ''), ',') AS z GROUP BY value;
DBFiddle