**Describe the bug**
I am working with parameterized queries and they work fine for me so far for updates and selects.
The behaviour does though seem to break, when `DESCRIBE` is involved.

**Does it reproduce on recent release?**
Version used: 21.4.6.55 (server) -- yes

 
**How to reproduce**
* Which ClickHouse server version to use
  * Version used: 21.4.6.55 (server)
* Which interface to use, if matters
  * CLI and HTTP
* Non-default settings, if any
  * no

When using the CLI on a simple `SELECT` example, the parameter work fine:

```sh
$ clickhouse client --param_p0="2" -q "SELECT {p0:String}"
2
```

When using it in a `DESCRIBE` part it does break though:

```sh
$ clickhouse client --param_p0="2" -q "DESCRIBE TABLE (SELECT {p0:String})"
Received exception from server (version 21.4.6):
Code: 456. DB::Exception: Received from localhost:9000. DB::Exception: Query parameter `p0` was not set.
```

**Expected behavior**
It would be expected to return to correct types like:

```sh
$ clickhouse client -q "DESCRIBE TABLE (SELECT '2')"
\'2\'   String
```

**Error message and/or stacktrace**

As written above the following message appears:

```
Received exception from server (version 21.4.6):
Code: 456. DB::Exception: Received from localhost:9000. DB::Exception: Query parameter `p0` was not set.
```

**Additional context**
Possibly related to #10976

{
    auto ast_identifier = dynamic_pointer_cast<ASTIdentifier>(ast);
    if (ast_identifier->children.empty())
        return;
    auto & name_parts = ast_identifier->name_parts;
    for (size_t i = 0, j = 0, size = name_parts.size(); i < size; ++i)
    {
        if (name_parts[i].empty())
        {
            const auto & ast_param = ast_identifier->children[j++]->as<ASTQueryParameter &>();
            name_parts[i] = getParamValue(ast_param.name);
        }
    }
    
    if (!ast_identifier->semantic->special && name_parts.size() >= 2)
        ast_identifier->semantic->table = ast_identifier->name_parts.end()[-2];
    ast_identifier->resetFullName();
    ast_identifier->children.clear();
}
}