0496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858ee OP_CHECKSIG
and this is the abstraction-address: 12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX
That depends on where you look.
There is no standard way of converting a Pay2PubKey script into an address. Some block explorers choose to treat it like a Pay2PubKeyHash address.
They hash the pubkey, put a 0x00 byte in front of it, and use bease58check encoding. This is just a choice they've made in how they want to display the script to you on their website.
If you were to try to send to that address (12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX) it would NOT be a Pay2PubKey output. Any Bitcoin wallet would convert that address into a Pay2PubKeyHash output script when it built the transaction.
That address IS a Pay2PubKeyHash. The block explorers that you are using are just misrepresenting the output script to you.
They don't. They will always convert that address into the associated Pay2PubKeyHash script.