I want to merge two pattern matching functions

If only to satisfy the overall goal, then you can do

let f (l : char list) : string =
  String.concat "" (List.map Char.escaped l)

If it must look like the original ones, then you can do

let f (l : char list) : string =
  let rec aux (l : char list) (acc : string) : string =
    match l with
    | [] -> acc
    | x :: xs -> aux xs (acc ^ (Char.escaped x))
  in
  aux l ""

Note that it might not be very efficient.