Делать нужно так:
private List<Enemy> enemies = new List<Enemy>();
private void DestroyEnemy(Enemy enemy)
{
enemies.Remove(enemy);
Destroy(enemy.gameObject);
}
Если сначала уничтожать gameObject, а потом пытаться выкинуть из списка, то может случиться нулреф из-за того, что компонент уже уничтожен.