The fees for those transactions are not zero as can be seen on a
block explorer, but they are low.
The OP_RETURN feature means those transactions are unspendable. It was added to the network to reduce the incidence of people including messages into a transaction and increasing the size of it, that can be done now using the OP_RETURN command.