unless you intend to change the ascii pointer, it should be const:
const char* const ascii_blocks = "\0xF2\0xEE";
The string literal syntax does not mean you cannot use macros, just the macros need to be strings too:
#define AAA "\0xF2"
#define BBB "\0xEE"
const char* const ascii_blocks = AAA BBB;
The {} syntax can only be used to initialize structs or arrays, not pointers. Therefore you could write your initial sample as
#define BLOCKS_ON ((char)0xEE)
#define BLOCKS_OFF ((char)0xF2)
const char ascii_blocks[] = { BLOCKS_OFF, BLOCKS_ON, '\0'}; // include string terminator ('\0')
If you need a pointer, just make it point to an array defined this way.
Also wondering where there is a terminating 0 character at the end, if you index into ascii_blocks only using indexes 0 and 1, then there is no need for it.
Daniel