Верна ли записана конструкция if?
Верно.
Вы пробовали проверить? Написать тест с двумя вариантами значения $a и посмотреть ; )
Заметьте, что если вместо точки-с-запятой после echo вы напишете запятую, то назначение $b выполнится только в случае истинности условия в if:$a = false;

if ($a) echo "не пусто"; $b = 1; // назначение $b выполнится всегда

if ($a) echo "не пусто", $b = 1; // назначение $b выполнится только при истинности $a
// второй вариант плохой, не делайте так. Результат $b = 1 передается как аргумент в echo
// лучше использовать фигурные скобки:
if ($a) {
  echo "не пусто";
  $b = 10;
}
// в скобках лучше читается
Верно, но так лучше не писать. Очень плохо читается и к тому же велика вероятность ошибиться и долго не понимать почему у вас $b всегда 1.if ($a) {
    echo "не пусто";
}
Если экономите строки, то в данном случае можно воспользоваться тернарным оператором ?:echo ( $a ? 'не пусто' : '' );