If you have a split on a boolean attribute, this issue can occur when a boolean has a null value in the database. This should never occur in normal cases, however it might occur after database migrations and such.
You could verify this in your database if you query something like (assuming postgres)
select * from lowercasemodulename$lowercaseentityname where lowercaseattributename is NULL;
I'm not sure, but I can imagine this issue occurs as well if you apply entity access in your microflow and there are no read rights for the specified attribute
This exception can occur when your expression evaluate empty, like the message says. The cause of this exception can be, as Michel states, an empty boolean in the database (which I haven't seen in the last few years).
The other cause is if your expression actually results in empty, this can happen when you have an expression like this: "$MyObject/MyBooleanAttribute"
This expression is valid however if the variable $MyObject is empty this expression will result in empty as well. And therefore in an exception.
Either use "if $MyObject/MyBooleanAttribute = true then true else false"
or check first if the object is available.
The last cause of this error can be if you run your microflow with security applied and the user who executes the flow has no read access on the attribute
I also encounter sometimes the loosing reference problem. I had a project with two pages. In the first page the user could select a reference. I had a custom button to go to the second page by microflow. In this microflow I committed the object wit a lot of parameters (but not specific the reference of the first page). The user could end the whole proces and when he inspected this object the reference was set. But logging out and logging in again this reference was gone. The sollution was to specificly commit the reference. Then the reference was kept. I hope I can reproduce this error by deleting this reference again in the commit and checking again. If so I will commit this as bug.