**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
throw DB::Exception("Template for column " + std::to_string(column_idx) + " already exists and it was not evaluated yet",
                                ErrorCodes::LOGICAL_ERROR);
        std::exception_ptr exception;
        try
        {
            bool found_in_cache = false;
            const auto & result_type = header.getByPosition(column_idx).type;
            const char * delimiter = (column_idx + 1 == num_columns) ? ")" : ",";
            auto structure = templates_cache.getFromCacheOrConstruct(
                result_type,
                !result_type->isNullable() && format_settings.null_as_default,
                TokenIterator(tokens),
                token_iterator,
                ast,
                *context,
                &found_in_cache,
                delimiter);
            templates[column_idx].emplace(structure);
            if (found_in_cache)
                ++attempts_to_deduce_template_cached[column_idx];
            else
                ++attempts_to_deduce_template[column_idx];
            buf.rollbackToCheckpoint();
            if (templates[column_idx]->parseExpression(buf, format_settings, settings))
            {
                ++rows_parsed_using_template[column_idx];
                parser_type_for_column[column_idx] = ParserType::BatchTemplate;
                return true;
            }
        }