Musisz to rozbić to na dwa warunki:
- czy hasła nie są puste,
- czy hasła są takie same.
Czyli coś typu:
!empty( $_POST['password'] ) && !empty( $_POST['password_ad'] ) && $_POST['password'] === $_POST['password_ad']
Warunek, który obecnie masz, będzie zwracać dziwne wyniki, bo porównujesz wynik wywołania !empty (czyli false dla każdego niepustego hasła) z faktycznym hasłem.