Как уже тут замечали, лучше использовать нормальную структуру, где по id пользователя привязываются все нужные типы машины (по 1 на каждую запись), т.е. таблица вида "user_cars(user_id, car)". Тогда можно будет за запрос сразу получить просто список машин пользователя "SELECT car FROM user_cars WHERE user_id = ..."
А при данной структуре можно слить значения в одну "цифровую" строку (и заодно использовать передачу параметров вместо форматирования текста)
cursor.execute(f"SELECT honda||spyder||yamaha||ford||lancer||nissan car_info FROM cars WHERE id2 = ?", (ctx.author.id, ))
В результате запрос возвратит скажем "001010" если у пользователя есть yamaha + lancer. Затем сравнить со списком машин. Например так
# допустим получили такую строку флагов из таблицы
car_flag = "001010"
# список машин в таком же порядке, как столбцы таблицы
cars = ['honda', 'spyder', 'yamaha', 'ford', 'lancer', 'nissan']
# сопоставляем нашу строку флагов со списком машин
user_cars = [car for car, flag in zip(cars, car_flag) if flag == "1"]
print(user_cars)
# ['yamaha', 'lancer']
--
Еще можно использовать названия полей напрямую из запроса через cursor.description, примерно так:
data = cursor.execute(f"SELECT * FROM cars WHERE id2 = ?", (ctx.author.id, ))
for value, name in zip(data, map(lambda x:x[0], cursor.description)):
if value = 1:
print(name)