**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 Block & header = getPort().getHeader();
    const IDataType & type = *header.getByPosition(column_idx).type;
    auto settings = context->getSettingsRef();
    
    skipToNextRow(0, 1);
    buf.makeContinuousMemoryFromCheckpointToPos();
    buf.rollbackToCheckpoint();
    Expected expected;
    Tokens tokens(buf.position(), buf.buffer().end());
    IParser::Pos token_iterator(tokens, settings.max_parser_depth);
    ASTPtr ast;
    bool parsed = parser.parse(token_iterator, ast, expected);
    
    if (column_idx + 1 != num_columns)
        parsed &= token_iterator->type == TokenType::Comma;
    else
        parsed &= token_iterator->type == TokenType::ClosingRoundBracket;
    if (!parsed)
        throw Exception("Cannot parse expression of type " + type.getName() + " here: "
                        + String(buf.position(), std::min(SHOW_CHARS_ON_SYNTAX_ERROR, buf.buffer().end() - buf.position())),
                        ErrorCodes::SYNTAX_ERROR);
    ++token_iterator;
    if (parser_type_for_column[column_idx] != ParserType::Streaming && dynamic_cast<const ASTLiteral *>(ast.get()))
    {