Не зная подробностей, мое лучшее предположение было бы что-то вроде
(let ((result (recursive-call ...)))
(if (null? result) (resursive-call (cdr whatever-list))
(cons result (cdr whatever-list)))
По сути, просто проверьте, является ли результат пустым списком, и если да, не помещайте его в список, который вы возвращаете.