The first version of the quoting would be correct except that aliases don't do what you want. You need a function:
ip_usage() { sudo grep "$1" /srv/logs/httpd/chris-server.com/access.log; }
Documentation
From man bash:
Aliases allow a string to be substituted for a word when it is used as the first word of a simple command.
In other words, aliases do string substitution. They do not support manipulation of arguments. Thus, referencing a first argument inside an alias via $1 is not supported.
Also from man bash:
A shell function, defined as described above under SHELL GRAMMAR, stores a series of commands for later execution. When the name of a shell function is used as a simple command name, the list of commands associated with that function name is executed. Functions are executed in the context of the current shell; no new process is created to interpret them (contrast this with the execution of a shell script). When a function is executed, the arguments to the function become the positional parameters during its execution. The special parameter # is updated to reflect the change. Special parameter 0 is unchanged. The first element of the FUNCNAME variable is set to the name of the function while the function is executing.
In other words, bash functions do support positional arguments.