Последняя часть &:not(:first-child) li:before скомпилируется в menu:not(:first-child) li:before, а надо чтобы в menu li:not(:first-child):before.
Или можете использовать такую конструкцию &+ li:before которая компилируется в menu li + li:before {
Дк и сказали бы об этом сразу и вопрос определили в тег css, а не Twitter Bootstrap. Теперь по вопросу - если конструкцию нельзя менять, то делайте position:absolute и у каждого media-запроса в зависимости от ширины экрана подгоняйте.
&:not(:first-child) li:before
скомпилируется вmenu:not(:first-child) li:before
, а надо чтобы вmenu li:not(:first-child):before
.Или можете использовать такую конструкцию
&+ li:before
которая компилируется вmenu li + li:before {