To return only one row, use limit 1 in the query; this clause appears before label:

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.)