Below I am trying to find the steady state of x1 (x2 is a func of x1) in terms of a variable q1. x1stst. Then I wish to compute q1 values giving "trace = 0" in equq1 (equq1 includes x1 steady states as a function of q1). Unfortunately NSolve doesn't work due to the hideous polynomial of equq1
(*Find q1*)
q2 = 46.2857;
q3 = 0.111;
q4 = 5.714285714285714`;
q5 = 0.14285714285714288`;
NSolve[q1 q2 (q3 + x1)/(1 + x1) x2 - (q4 x1)/(q5 + x1) == 0 &&
1/(1 + x1^2) - x2 == 0, {x1, x2}];
x1stst = NSolve[
q1 q2 (q3 + x1)/(1 + x1) 1/(1 + x1^2) - (q4 x1)/(q5 + x1) == 0, x1];
equq1 = -1 + (5.714285714285714` x1)/(0.14285714285714288` + x1)^2 -
5.714285714285714`/(0.14285714285714288` + x1) - (
46.285714285714285` (0.111` + x1) x2 q1)/(1 + x1)^2 + (
46.285714285714285` x2 q1)/(1 + x1);
NSolve[equq1 == 0 /.
x1stst[[1]] /. {x2 -> 1/(1 + x1stst[[1]]^2)}, q1, Reals]
I tried Together Collect etc. non of them worked. Looked similar questions but again couldn't find anything.
Any advice would be appreciated. Thank you.

x1stst[[1]]is a replacement rule. An expression like:x2 -> 1/(1 + x1stst[[1]]^2)does not make sense. $\endgroup$