It used to be the case that 'true' and 'false' were constants (or maybe keywords?) which signified reals whose values were 1 and 0 respectively. So if you were to have added 0.1 to true, you'd end up with 1.1 (which GameMaker would then regard as true when checking conditionals). Likewise, if you'd added 0.1 to false you'd end up with 0.1, which GameMaker would regard as false (because everything less than .5 is regarded as false).
GameMaker Studio 2 changed things up, since there are now actual data types (whereas before everything was a real). But GameMaker does all the casting automatically, so if varA started off as true and you added 0.1, GameMaker should have no problem doing the addition... you'd still end up with 1.1 which would evaluate to true when checking conditionals. The only difference would be that typeof(varA) would return 'bool' before you perform the addition, and typeof(varA) would return 'number' afterwards... since the addition itself is what triggers the boolean-to-float casting. At least I think that's how it works.