Whats the difference between "Content Type" and "Content Types" on a block configuration form?
"Content type" comes from CTools and "Content types" comes from core.

Simplified summary

"Content types" comes from core and is the preferred condition to use. The "negate" option is also present in core, but it is suppressed by the block module (source). In contrast to core CTools provides this condition not just for nodes but for any entity type (taxonomy terms, custom entities etc.). That's the reason why in case of nodes there is a duplicate set of entity bundle conditions.

Issues on drupal.org

Now there's this core issue Duplicate node type setting in block visibility which was closed as "works as designed". The problem shall be fixed by CTools (as in remove the duplicate entry).

This leads us to this CTools issue Duplicate node type visibility condition in block settings which was put on hold until core itself replaces CTools functionality to provide block visibility settings for any entity type (not just for nodes) including the "negate" option.

Which finally brings us to this core issue Add entity bundles condition plugin for entities with bundles where the progress to move CTools functionality to core to replace the current node type core condition is being tracked.