It seems that we can't set negative values with config-set:
drush cset block.block.myblock_name weight '-1' --format=string -y
doesn't work
The (ugly) work-around is:
echo '-1' | drush cset block.block.myblock_name weight - -y
You don't need to specify that format is string as that is the default.
This seems to be a general problem with Drush commands; values starting with a dash is interpreted as arguments. See bug report for similar issue with vset - https://github.com/drush-ops/drush/issues/378