Your UNIQUE key is the combination of (slug, tag_check). NULL values are ignored and your insert query always writes NULL to tag_check column.
CREATE TABLE `dupe_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`slug` varchar(50) NOT NULL DEFAULT '',
`tag_check` tinyint(4) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `player_tag_check` (`slug`,`tag_check`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
select * from dupe_test;
+----+-----------+-----------+
| id | slug | tag_check |
+----+-----------+-----------+
| 1 | hugh-jass | NULL |
| 2 | hugh-jass | NULL |
| 3 | hugh-jass | NULL |
| 4 | hugh-jass | 1 |
+----+-----------+-----------+
Add another...
MariaDB [test]> insert into dupe_test (slug) values ('hugh-jass');
Query OK, 1 row affected (0.051 sec)
MariaDB [test]> select * from dupe_test;
+----+-----------+-----------+
| id | slug | tag_check |
+----+-----------+-----------+
| 1 | hugh-jass | NULL |
| 2 | hugh-jass | NULL |
| 3 | hugh-jass | NULL |
| 6 | hugh-jass | NULL | << NEW
| 4 | hugh-jass | 1 |
+----+-----------+-----------+
5 rows in set (0.000 sec)
Now try adding again but with tag_check = 1 then 2...
MariaDB [test]> insert into dupe_test (slug, tag_check) values ('hugh-jass', 1);
ERROR 1062 (23000): Duplicate entry 'hugh-jass-1' for key 'player_tag_check'
MariaDB [test]> insert into dupe_test (slug, tag_check) values ('hugh-jass', 2);
Query OK, 1 row affected (0.073 sec)
MariaDB [test]> select * from dupe_test;
+----+-----------+-----------+
| id | slug | tag_check |
+----+-----------+-----------+
| 1 | hugh-jass | NULL |
| 2 | hugh-jass | NULL |
| 3 | hugh-jass | NULL |
| 6 | hugh-jass | NULL |
| 4 | hugh-jass | 1 |
| 8 | hugh-jass | 2 |
+----+-----------+-----------+
6 rows in set (0.000 sec)
So either
insert a tag_check value too, or
exclude tag_check from the UNIQUE key