This is a bit-wise reduction operator. |a & b means you apply a logical OR to all bits of a (producing a single bit) and then do a logical AND of that bit and b. |a has no effect when a is a single bit.
Nevertheless, it's quite common to see bit-wise reduction applied to single bit values. One typical case is auto-generated code where the actual width of a may depend on the configuration. Another possibility is this being legacy code where a once had several bits. When a became a single bit value, this line was still technically correct so the now unneeded reduction operator was left in.