1. How to check substitution field for empty? Is it !=""? or is there some kind of cb:if empty or similiar?
You use !="".
2. How to use substitution with non-translated value? I need to do a cb:if and this does not make sense to make it for every possible translated value. So I need to make the check on the raw value without translation. How should I do this?
IF statements don't translate the value. Some custom fieldtypes may not respect this but all core field values shouldn't translate. So you'd just match against the language string it self.