Хотя я не сталкивался с OpenCart. Но практически все движки по умолчанию кидают любые ссылки на главный скрипт-роутер (например, index.php). Потому у вас и выходит строка index.php?route=/scanner/brend/hp/&301=
Посмотрите исходники $this->url->link, с большой долей вероятности увидите там преобразование ссылки так, чтобы ссылка начиналась с index.php.
А вот если вы скормите методу редиркета сразу готовую ссылку
$this->response->redirect($redirect_roots);
То скорее всего получите то, что нужно.
Почти уверен, что в этом методе реализовано что-то типа:
header('Location: ' . $url);
exit;
Это все к тому, что если ничего не поможет просто напишите этот заголовок, не используя API OpenCart.