In posizione 0 dell'ArrayList c'è un' altra ArrayList! Il primo add è infatti:
codice:matrice.add (new ArrayList ());
Tu vedi [Pia] nella prima posizione solo perché all'elemento in prima posizione (la lista) è stata aggiunta la stringa Pia (dopo il casting), e quando fai il println della lista in automatico viene invocato il metodo toString specifico di ogni oggetto, che nel caso di una lista mostra i propri elementi, separati da virgole e racchiusi da parentesi quadre.