It there a pattern used to process a same function but assign the result to a different variable regarding to a different condition?
First, it looks like the ID, OutcomeID and OutcomeNoteID belong together, so I think it it makes sense to extract them into a separate class (though my naming of it is just a guess):

class Hearing
{
    public int ID { get; private set; }

    public int OutcomeID { get; private set; }

    public int OutcomeNoteID { get; private set; }

    public Hearing(int id)
    {
         ID = id;
    }

    public void SetOutcome(int outcomeId, int outcomeNoteId)
    {
        OutcomeID = outcomeId;
        OutcomeNoteID = outcomeNoteId;
    }
}


With that, your code could be changed to something like:

Hearing hearing;
if (string.Equals(isStandardFlag, "STANDARD", StringComparison.InvariantCultureIgnoreCase))
    hearing = centreSession.StandardHearing;
else
    hearing = centreSession.NonStandardHearing;

hearing.SetOutcome(
    disciplineSvc.SaveResultA(hearing.ID, OffenceID, Outcome),
    disciplineSvc.SaveResultB(hearing.ID, txt1.Text, "ResultHearing"));


Some additional notes:


I have also changed string.Compare() == 0 to string.Equals(), because I think it expresses the intent better.
Some of the names are quite bad (e.g. txt1 or SaveResultA), you should improve those.
Dealing with ids a lot is not very object-oriented. I think it would make more sense to deal directly with Outcome and OutcomeNote objects, not just their ids.