Данные не возвращаются в вашу переменную. Они лежат в курсоре.
def client_exists(self, user_id):
"""Проверяем есть ли клиент уже в базе данных"""
self.cursor.execute("""SELECT * FROM clients WHERE user_id = %s""", (user_id,))
return bool(len(self.cursor.fetchall()))
И можно сделать немного вот так (если не путаю):
def client_exists(self, user_id):
"""Проверяем есть ли клиент уже в базе данных"""
self.cursor.execute("""SELECT * FROM clients WHERE user_id = %s""", (user_id,))
return self.cursor.fetchone() is not None