Nesse caso específico, houve um problema de levantamento de requisitos antes de se começar o trabalho. Por quê? Porque a feature2 só deveria ter sido implementada após um código básico proveniente da feature1. Talvez não fosse possível resolver esse problema de requisitos antes de começar a implementar, porque talvez só se percebesse essa dependência durante a escrita do código.
Existem algumas alternativas para a sua situação. A mais "básica" e que funciona para quase tudo (não a melhor sempre, entretanto), é fazer
Bem, se foi possível começar o código da feature2 antes de existir o código da feature1, então isso significa que tem uma parte da feature2 que é independente da feature1. Nesse caso, você poderia fazer um pull request/merge request do trecho de código independente. Ele não entregará a feature inteira, mas dará um passo importante nela. Só depois de misturado esse código você poderá dar seguimento na feature2-codigo-dependente-da-feautre1 em cima do branch Master já mergeado com essa primeira parte da feature.