Log the diff of a Apache httpd config file and reload the service with Python and systemd
As a whole your approach looks good, except for a couple of issues I'd suggest to fix:


__init__ method
Avoid repetitive indexing of nested structures like self.config['httpd-conf'].Instead use assigned instance variable with f-string formatting:

def __init__(self, config_file):
    self.config_file = config_file
    self.config = self.load_config()
    self.httpd_conf = self.config['httpd-conf']
    self.backup_file = f'{self.httpd_conf}.bak'
    self.syntax_check_cmd = self.config['syntax-check-cmd'].split()
    self.reload_cmd = self.config['reload-cmd'].split()

find_diff method
No need to convert a generator returned by difflib.unified_diff function into list with diffs = list(...) - the subsequent ''.join(diffs) itself will take care of consuming generator.
call_httpd_commands method
This method is redundant as its main effect is reloading httpd server, but you already have the appropriate method for that purpose - reload_httpd. Thus call_httpd_commands method's statements are just moved there and the old method is eliminated:

def reload_httpd(self):
    try:
        subprocess.run(self.syntax_check_cmd, check=True)
        subprocess.run(self.reload_cmd, check=True)
    except subprocess.CalledProcessError as e:
        logging.exception("Reloading failed: %s", e)