**Describe the issue**
Can't insert `String` data to column with `LowCardinality` type.

Starting from 21.1 this query fails

**How to reproduce**
```sql
CREATE TABLE default.lc_test
(   
    `id` LowCardinality(String)
)
ENGINE = MergeTree
PARTITION BY tuple()
ORDER BY id;

Ok.
0 rows in set. Elapsed: 0.003 sec.


insert into lc_test values (toString('a'));
Exception on client:
Code: 49. DB::Exception: Bad cast from type DB::ColumnString to DB::ColumnLowCardinality: data for INSERT was parsed from query

```

**Additional context**
related to issue https://github.com/DarkWanderer/ClickHouse.Client/issues/66

version 20.12 ok
if (pos_double == buf || errno == ERANGE || float_value < 0)
                return false;
            if (negative)
                float_value = -float_value;
            char * pos_integer = buf;
            errno = 0;
            UInt64 uint_value = std::strtoull(buf, &pos_integer, 0);
            if (pos_integer == pos_double && errno != ERANGE && (!negative || uint_value <= (1ULL << 63)))
            {
                istr.position() += pos_integer - buf;
                if (negative && type_info.main_type == Type::Int64)
                    number = static_cast<Int64>(-uint_value);
                else if (!negative && type_info.main_type == Type::UInt64)
                    number = uint_value;
                else
                    return false;
            }
            else if (type_info.main_type == Type::Float64)
            {
                istr.position() += pos_double - buf;
                number = float_value;
            }
            else
                return false;
        }
        columns[column_idx]->insert(number);
        return true;
    }
}
ColumnPtr ConstantExpressionTemplate::evaluateAll(BlockMissingValues & nulls, size_t column_idx, size_t offset)