And generally, please do not set `flycheck-checker`.  This is not what this variable is intended for.

By setting it, you bypass the automatic checker selection, hence the need to duplicate part of Flycheck's selection logic, namely `flycheck-may-use-checker`.  Even worse, you work against Global Flycheck Mode, which is *the* recommended way to use Flycheck.  

In this mode, Flycheck Mode will only be enabled if there is a syntax checker for the current buffer.  But since your syntax checker is not registered, Flycheck does not consider it.  As such, it will only enable Flycheck Mode in the current buffer, if by coincidence another syntax checker from `flycheck-checkers` could potentially be used as well.

Consequently, if your syntax checker is the *only* syntax checker that could be used for the current buffer, it will never be used, because Flycheck Mode is not enabled, hence the hook is not called, and `flycheck-checker` is never set.

So please, use `flycheck-mode-hook` to set `flycheck-phpcs-standard`, but do not to enable `css-js-phpcs` here.

Instead, register this syntax checker for automatic selection with `(add-to-list 'flycheck-checkers 'css-js-phpcs)` on *top-level*, that is, *outside* of this hook function.  If the syntax checker is not already registered, it is added to the front of `flycheck-checkers`, and thus preferred over other CSS or Javascript checkers.  

Flycheck then takes care to enable it only when it can be used, that is, if its executable is available, the proper major mode is active, and the predicate succeeds.  Since you already have a predicate in place to check for Drupal modes, Flycheck will not enable it for non-Drupal Javascript or CSS.  

Extend this predicate with a check for your `drupal/flycheck-phpcs-js-and-css` variable, and you have the same behavior, but with less code, less potential bugs, and support for Global Flycheck Mode.