%sysfunc is designed to make data step functions available to the macro language.
As such %syfucnt expects to see as the first element the name of a function which would typically have a () around the parameters the function uses.
%sysfunc (somefunctionname(<parameter list for the function goes here>) )
Your syntax has SAS thinking there should be an open parenthesis character, (, immediately after SQL.
I'm not sure that SQL qualifies as a FUNCTION. I think you may want something more like:
proc sql noprint;
SELECT count(warning_ind) into : Result_of_sys_check
FROM work.warning_check
WHERE warning_ind = 1
;
quit;
The INTO : writes the result of the Count function into a macro variable named Result_of_sys_check.