Because your JS syntax is invalid. Try one of these:
categorySelect[$index].checked
or
categorySelect[$index]['checked']
or preferably avoid $index altogether:
item.checked
Also you're using ng-class incorrectly, it works like this:
ng-class="{myClass: item.checked}"
This will add "myClass" if the checked property evaluates to true, and remove the class if it does not.
Also note that using "dot notation" with reserved keywords like "checked" can break older browsers, like IE9. If that occurs, and supporting IE is necessary, then try to use the array syntax I gave in the second example or use a different property name than "checked".