при использовании if x: вызывается метод __bool__, который, возвращает True или False
в первом же случае этот метод не вызывается, и сравниваются строка "10" и булевый тип True, которые явно не равны
то есть там еще получается, что если x=0 или 0.0 или комплексное число, то тоже False вроде выдает