Lua offers a limited selection of types compared to most other languages; strings, numbers, booleans, tables, functions, coroutines, and nil. Per
the wiki, you can send any of these types directly via modems, with the exception of functions and coroutines (which get translated to nil). (Though to be fair, that was only documented there a bit over a week ago.)
So yeah, if you specifically want to send bools, just send bools.
modem.transmit(targetChannel, suggestedReplyChannel, true)
Edit:
It's important to note that modem messages arrive as events on the eligible destination systems. Events are pulled from the front of the event queue (each time a system yields by eg calling os.pullEvent()), and new events are added to the end. Each such system can only handle up to 256 events in their queue at a time. That means that if you're sending data one bit per message, there is an absolute upper limit of just
32 bytes before you either allow the target system to start pulling events, or before you start losing data - and odds are the "in practise" figure will be lower, because the modem_message events aren't going to be the only ones populating the queue.
Likewise, if you eg transmit two messages for every one that's getting pulled, the queue will quickly overflow and you'll start losing information.