Можете да направите това без да използвате PHP функция, като се възползвате от функцията group_concat на MySQL, която прави точно това, което търсите:
SELECT name, group_concat(`data`) FROM table GROUP BY name;
Ще върне една колона с "John" и втора колона с "data1,data2". След това можете да използвате функцията explode() на PHP във втората колона, за да получите масив, съдържащ "data1" и "data2".