Объявление его как атрибута означает, что это строка.
Так что stuff[0]
будет эквивалентно: var myString = "['a','b','c']"; alert(myString[0]);
Вы должны сделать так, чтобы это выглядело так:
<div data-stuff="a,b,c"></div>
var stuff = $('div').data('stuff').split(',');
alert(stuff[0]);
Retraction: синтаксический анализ jQuery не выполняется, поскольку он не соответствует правилам parseJSON.
Однако я поддержу свое решение. Есть аспекты других, которые не идеальны, так же как это решение не совсем идеально в некоторых отношениях. Все зависит от ваших парадигм.