**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
const FormatSettings & format_settings_)
        : IInputFormat(header_, buf), buf(in_), params(params_),
          format_settings(format_settings_), num_columns(header_.columns()),
          parser_type_for_column(num_columns, ParserType::Streaming),
          attempts_to_deduce_template(num_columns), attempts_to_deduce_template_cached(num_columns),
          rows_parsed_using_template(num_columns), templates(num_columns), types(header_.getDataTypes())
{
}
Chunk ValuesBlockInputFormat::generate()
{
    if (total_rows == 0)
        readPrefix();
    const Block & header = getPort().getHeader();
    MutableColumns columns = header.cloneEmptyColumns();
    block_missing_values.clear();
    for (size_t rows_in_block = 0; rows_in_block < params.max_block_size; ++rows_in_block)
    {
        try
        {
            skipWhitespaceIfAny(buf);
            if (buf.eof() || *buf.position() == ';')
                break;
            readRow(columns, rows_in_block);