single brackets ([..]) don't work for some tests, try with double brackets ([[...]]) and enclose the mod in ((..)) to evaluate the % operator properly:
if [[ $(( $1 % 4 )) == 0 ]]; then
More details here:
http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_02.html