Это поведение по умолчанию AngularJS или я просто что-то не так делаю?
Нет, это не поведение по умолчанию
Правильный синтаксис ng-class
такой:
<div ng-class="{ 'class-one': myString == 'true' , 'class-two': myString != 'true' }">
Другой способ - использовать class
и троичное выражение, как вы его написали:
<div class="{{ myString != 'true' ? 'class-one' : 'class-two' }}">