bool?Zero value для типа bool в Go - это false. При объявлении переменной без инициализации она получает значение false.
var b bool
fmt.Println(b) // false
var ready bool
if !ready {
fmt.Println("not ready")
}
В Go нет приведения чисел к bool (0 не значит false). Условие должно быть именно булевым выражением. Нельзя написать if x для числа - только if x != 0.