mmm addslashes non la conoscevo ma funziona a dovere.
Stavo per suggerirti di usare str_replace
codice:
$label=str_replace("'","\'",$label);
però secondo me il problema sta nel fatto che addslashes la usi solo quando $slash=="y"
devi usarla sempre
un'altra soluzione alternativa è quella di usare le virgolette come delimitatori degli elementi dell'array javascript
codice:
echo "[\"".$aItems['id_categoria']."\",\"" .$aItems['id']."\",\"".$label."\"]";
per se hai le virgolette all'interno delle variabili hai lo stesso problema, quindi fa il replace ogni volta e sei apposto