So what is it that you don't know how to do? Use an MQTT Out node and send those values to that topic.
Make life easier for yourself, though, and configure Friendly Names in zigbee2MQTT. Firstly that makes remembering topics much easier, and secondly, if you have to replace the switch, all you have to do is to configure the new one with the name.
Don't bother, it is easier just to use MQTT nodes, as you have found out. The zigbee node contributes little, if anything, and has numerous unaddressed issues on its github page.
use a change node before the mqtt out node.
Set msg.topic to 'zigbee2mqtt/0xa4c138dfe4ce8c20/set'.
Then set msg.payload to '{ "state_right": "TOGGLE" }'.
You could also configure the mqtt out node to that topic and only send messages for that topic to that node. I tend to use only a few mqtt out nodes and dynamically set the topic with a change node.
It would be super helpful if you could copy all the nodes in your flow and export them to JSON so you can drop it in here. To really get a handle on how this should work though, watch some youtube videos or read through a couple starter tutorials.
Possibly, but who cares. When you are in node-red you can use the object features of javascript to make life easier. Doing it that way has the advantage that it will check for syntax errors in the data you give it.
In future, please past flows here directly. In order to make code readable and usable it is necessary to surround your code with three backticks (also known as a left quote or backquote ```)