Как в сокращенном if использовать только 1 вариант?
Допустим если $id не false нужно показать его.
Хочу сделать так <?= !$id ?: 'id = ' . Html::encode($id) ?>
но когда $id === false выводится единица, а по идее ничего не должно выводиться.
Это не "сокращенный if". Это - тернарный оператор. Само слово означает "троичный" ибо состоит из 3 частей: условие, первая ветка, вторая ветка. Выводится 1 потому что !false => true => 1. Так работает echo в php.