No.19.3.1p1 describes classes of things that are local identifiers. p2 adds a restriction that a class (1) local identifier (includes named constants) can’t be the same as a global identifier, with a carve-out for common blocks (without binding labels), but keep in mind that class (1) has many other kinds of entities. 19.3.2 adds a further restriction that a common block can’t have the same name as a constant or intrinsic procedure.
As is often the case in the standard, you have to keep multiple things in your head at the same time to understand what it really says. You can’t look at text in isolation. Here, there is a progressive narrowing-down of the rules, with selective inclusions and exclusions. I read it wrong at first, hence my earlier reply.