I'm new to Arduino and using a Mega 2560.
The logic appears to be reversed when lighting a single LED.
I don't know if this is a firmware issue or something regarding the Arduino I'm not aware of.
I have a single LED connected, cathode on pin7 and anode at +5V.
The following sketch turns the LED off.
The need to use 'negative or positive logic' is predicated on how you wire up the led in the first case. Wired as you have explained requires a digital LOW output to turn on the led. However if you wired the same LED cathode to ground and anode/resistor to the output pin then a digital High is required to turn on the LED. So it's your choice to make that will dictate if you are are required to use 'positive or negative logic', either method will work and neither is correct or incorrect.
I have a single LED connected, cathode on pin7 and anode at +5V.
Your inverted Logic is here.
If you want the normal logic you have to invert the LED.The cathode should be connected to ground and the anode to the pin.Be aware you must put a resistor between the pin and the anode.
The connection you made is also called sinking since the current will flow from the 5V line to inside the pin when it is low.
The oposite is called sourcing ...
As stated by GFS it is not a mistake but a misunderstanding. I think you might try and not limit your thinking that a HIGH must always mean on and LOW always means off. As an example wiring a simple switch is simpler to just wire the switch between ground and an input pin and enabling the internal pull-up resistor for the pin, no external resistor required, however it will mean the pushing the switch creates a LOW reading and releasing the switch creates a HIGH value. But as it's simpler and cheaper to do that then it makes sense just work with 'negative' logic in your sketch software when reading the switch state.
Don't let your mind put artificial barriers to what you can do.