Deleting certain integers from string list

SequenceReplace:

SequenceReplace[lis, {"a", _?(StringMatchQ[NumberString])} :> "a"]

 {"a", "b", "2", "c", "3", "a", "d", "4"}

Also

SequenceReplace[lis, {"a", _?(IntegerQ @* ToExpression)} :> "a"]

 {"a", "b", "2", "c", "3", "a", "d", "4"}

Split + ReplaceAll

Flatten[Split[lis, # == "a" &] /. {"a", _?(IntegerQ@*ToExpression) } :> "a"]

 {"a", "b", "2", "c", "3", "a", "d", "4"}


The following works for your example. But I am not sure that it will work for you if your example is not descriptive enough for some more general situation you have in mind.

lis = {"a", "1", "b", "2", "c", "3", "a", "d", "4"};
Flatten[Partition[lis, UpTo[2]] /. {"a", "1"} -> "a"]
{"a", "b", "2", "c", "3", "a", "d", "4"}