let g:ycm_global_ycm_extra_conf accept "~"

The python function os.path.exists does not expand "~" to user home folder so if you set g:ycm_global_ycm_extra_conf with "~" the file will not be load. Of course user can always use absolute path instead but I think accepting "~" is a better idea.