**Describe the bug**
Imagine that we have a table with old non-adaptive parts (.mrk extension) and enabled mixed granularity in the server's config in section (`<enable_mixed_granularity_parts>1<enable_mixed_granularity_parts>`) or using `ALTER SETTING` query. 
In this case, when we execute `ALTER DELETE` mutation (actually use `MergedBlockOutputStream`) we will take information about index granularity from our source part https://github.com/ClickHouse/ClickHouse/blob/master/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp#L1066-L1067, and mark file extension will be the same as in source part https://github.com/ClickHouse/ClickHouse/blob/master/src/Storages/MergeTree/MergeTreeDataPartWide.cpp#L65 `.mrk` for the old part. But on the other hand, in the stream settings, we will write index granularity using information from storage https://github.com/ClickHouse/ClickHouse/blob/master/src/Storages/MergeTree/MergedBlockOutputStream.cpp#L49 which will be set to `true`. So we will get part with `.mrk` extension and adaptive granularity which server will not be able to read and mark as broken.

Broken since #8290.
#include <Storages/MergeTree/MergedBlockOutputStream.h>
#include <Interpreters/Context.h>
#include <Poco/File.h>
namespace DB
{
namespace ErrorCodes
{
    extern const int NOT_IMPLEMENTED;
    extern const int LOGICAL_ERROR;
}
MergedBlockOutputStream::MergedBlockOutputStream(
    const MergeTreeDataPartPtr & data_part,
    const StorageMetadataPtr & metadata_snapshot_,
    const NamesAndTypesList & columns_list_,
    const MergeTreeIndices & skip_indices,
    CompressionCodecPtr default_codec,
    bool blocks_are_granules_size)
    : MergedBlockOutputStream(
        data_part,
        metadata_snapshot_,
        columns_list_,
        skip_indices,
        default_codec,
        {},
        data_part->storage.global_context.getSettings().min_bytes_to_use_direct_io,
        blocks_are_granules_size)
{
}
MergedBlockOutputStream::MergedBlockOutputStream(