Shell aliases, by definition, don't give you any way to use them conditionally. They apply to anything you run from an interactive prompt.
The way you can do this is with a function instead. (See In Bash, when to alias, when to script, and when to write a function? for more on why this is different.)
function python () {
test -z "$1" && ipython || command python "$@"
}
Something along those lines in your shell's rc file will cause your shell to run this function instead of the binary directly. If the first argument is blak, it will fire off ipython for you, otherwise it will pass on all arguments to whatever python binary is in your path (not the use of command
to force the binary rather than the function to execute and cause a recursion on itself).