Собственно, ошибка будет, если в графе встретится соответствие и этому условию:
if (i == j and G[i][j] == 1):
И этому условию:
elif (G[i][j] != G[j][i]):
В таком случае результат будет зависеть от того, какое из условий встретится раньше.
Первую проверку я бы вообще вынес из вложенного цикла и прогонял бы сначала одиночный цикл в поисках проблем с главной диагональю, а потом уже прогонял двойной цикл в поисках асимметрии, тогда при провале теста диагонали будет явно NO.
Контртест:
0 1
0 1