Я правильно понимаю, когда мы создали строку $a у неё была размерность один. А когда обратились к не существующему ключу (ведь нумерация начинается с нуля) мы увеличили её размер на единицу. И это стала строка с длинной два.
Вы только объясните человеку что тут неявное преобразования строкового типа к целому. При обращения к элементу массива указывается сам же массив, то есть строка. Её значение '1' преобразуется в число 1.
Ещё один момент, если был не понятен: $a['1']. Для доступа к символу в строке требуется целочисленный индекс. В данном случае происходит неявное преобразование к integer, т.е. в итоге будет $[1].