Methods to search for a client in MySQL by ID or by phone
Nothing wrong with Cliente ObtenerCliente accepting the query text.

Suffers from non-deterministic.  You are only going to get the first but without an order by then SQL will just pick one for you.

using is a better approach in my opinion   

For sure I don't like 


  Static method that opens a connection


Create the connection and let it be properly disposed  

private static Cliente ObtenerCliente(string query)
{
    using (Connection mySqlConexion = new Connection(conString))
    {
        try
        {
            //abrirConexion(); //Static method that opens a connection
            mySqlConexion.Open();
            using (cmd = new MySqlCommand(query, mySqlConexion))
            {
                using (MySqlDataReader dataReader = cmd.ExecuteReader())
                {                    
                    if (dataReader.Read())
                    {
                        return new Cliente(
                        Convert.ToInt32(dataReader["id_cliente"]),
                        dataReader["nombre_cliente"].ToString());
                    }
                    else
                    {
                        //dataReader.Close();  let the using dispose
                        return null;
                    }
                }
            }
        }
        catch (MySqlException e)
        {
            MessageBox.Show(e.ToString());
            return null;
        }
        finally
        {
             //cerrarConexion(); //Static method that closes the connection
        }
    }
}