To return only one row, use
limit 1 in the query; this clause appears before
select C, D, ... where B='"&A35&"' limit 1 label C'', D''...
The default order of the rows returned by
query is the order in which they appear in the sheet, so this will result in the first row being returned.
Alternative solution : use
filter instead. The formula will be a lot shorter:
=array_constrain(filter(C:V, B:B = A35), 1, 1e7)
The filter keeps selects columns C through V only from the rows with B equal to the content of A35. Then,
array_constrain forces the output to have no more than 1 row and 1e7 (=10000000) columns. (The absurdly large number of columns is just to indicate we don't impose a limit on columns.)