Come suggerito da optime e come stai provando a fare, puoi slittare per OR poi, da quel che ho provato, potresti filtrare l'array cercando con preg_match per rilevare la presenza di "id_record" con il valore da te stabilito.

Dopo questi passaggi puoi riassemblare la stringa con gli elementi risultanti. Se poi la stringa iniziale è avvolta da parentesi, e vuoi che sia così anche per quella filtrata, dovrai provvedere a rimuoverle e riapplicarle opportunamente.

Qui una possibile soluzione:
Codice PHP:
$id_record 91;

$querystr "(id = 292 AND id_record = 77 OR id = 298 AND  id_record = 78 OR id = 483 AND id_record = 78 OR id = 313 AND id_record =  79 OR id = 428 AND id_record = 84 OR id = 444 AND id_record = 86 OR id =  539 AND id_record = 91)";
$querystr trim($querystr"()");
$arror explode(" OR "$querystr);
$arror array_filter($arror, function($str) use ($id_record) {
    return 
preg_match("/id_record *= *{$id_record}/"$str);
});
$querystr "(" implode(" OR "$arror) . ")";

echo 
$querystr
Vedi se può andare, fai sapere