WARNING: This answer in its totality is only valid for more recent versions of CUPS (like 2.2.x). For previous versions, ask specifically if you do not understand what the manpage for cupsd.conf says...
First, CUPS only ever automatically installs and detects local network printers which announce themselves as IPP-capable (Internet Printing Protocol). A proprietary Canon-designed protocol will not work.
To check if your printer is one of the IPP-enabled models, simply run
ippfind [ENTER]
It should return a list of print device (or CUPS queue) URIs which are IPP-enabled.
Second, if your Canon MG6400 model did support IPP, your avahi-browse discovery should be returning not simply the service subtype _canon-bjnp1._tcp, but also _ipp._tcp. and/or _ipps._tcp. .... but maybe you are overlooking this, because your | head --lines=1 throws these results out of the window?
Third, to enable CUPS for full participation in ZeroConf/Bonjour networking to automatically use shared printers and in turn share its own local printers, you need the following lines in your /etc/cups/cupsd.conf file:
BrowseDNSSDSubTypes _cups,_print
BrowseLocalProtocols all
Port 631