Исключения тут ни при чём.
Просто в питоне отрицательный индекс обозначает элемент, отсчитываемый с конца списка. Например, lst[-1] - последний элемент списка, lst[-2] -предпоследний, и так далее.
Поэтому, когда в нулевой строчке или нулевом столбце программа будет проверять соседей, индекс (-1) не вызовет ошибки, а будет обозначать ячейку на противоположном краю поля.