il perchè non lo so però potresti ovviare usando
if (isset($carrello) && $carrello) {
...