When I try to test manually updating the boolean value in my MySql table before implementing it into a ruby script, I get a match but no changes :
UPDATE calls SET ended = NOT ended WHERE incoming_Cid = '1234567890';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
Unless I'm mistaken, this looks like correct syntax to me.
I looked at other threads concerning this issue (flipping boolean values) like here.