Можете помочь с исправить ошибку в коде?
Что-то как-то перемудрили... Так не проще?:
def func(a, b):
    if not str(a).isalpha() or not str(b).isalpha():
        return -1
    elif a.isupper() and b.isupper():
        return 1
    elif a.islower() and b.islower():
        return 1
    return 0
    
print(func(1, 'a'))
# -1
print(func('a', 'b'))
# 1
print(func('A', 'a'))
# 0
print(func('A', 'B'))
# 1
Вместо перебора всего диапазона строчных букв на совпадение с искомой проще проверить, входит ли ord(x) в диапазон.
Диапазон задать через range, и создать один список из двух списков из диапазон для маленьких кириллицы и маленьких латиницы.  К концу диапазона добавлена 1 так питон при работе с диапазонами не включает само число конца диапазона.
rangeCapital=list ( range(65,91+1) ) + list (range(1040, 1071+1) ) 
if ord(x) in rangeCapital: ....