I would probably use a single Phase table, looking like this:
Feedstock --< FeedstockInPhase >-- Phase (1/2) --< Product
and I don't think you need a join table between Phase(s) and Product – if every product was created as the result of exactly one phase, then that phase is simply an attribute (foreign key) of the product.
A report based on that Product layout should be able to show the phase it was created in, plus all its feedstocks (you wrote “the original feedstock ID”, but that contradicts the data model you described). The FeedstockInPhase join table is also a candidate for your report layout; it depends on the desired level of granularity.