Black-box testing as opposed to white-box testing is a broad category of testing that includes tests where you do not know, and do not need to know, how the implementation works, you just want to test the outcome.
For example: I click the buy button on a web site and the item I selected is now in my shopping cart. I don't care how the programmer made this happen, just that it did happen and the correct item was put in the shopping cart.
In white box testing you want to peer into the internals of the code and probe implementation details. This is more common at the lower level, unit testing.
Functional testing could be either black box or white box testing, depending on exactly what type of tests you want to perform. The two categorisations are not mutually exclusive, they refer to different aspects of the tests. There are lots of ways of categorising tests and everyone has their own interpretation of which is best, or most appropriate in a given situation.
I would say usability testing is almost certainly going to be black box testing. There are many different kinds of usability testing where you should perform the ones that you think the product would most benefit from. You might be critiquing the user interface design, verifying that a likely customer end to end scenario works, or testing that accessibility statutory requirements are met. I would consider all of these usability testing, although, as I said before about people having different opinions on what to call different types of testing, others may disagree.
It is ok to do both types of testing if you think you are adding value by doing both. Sometimes you are adding value by supporting your team in find bugs, sometimes by critiquing the design with a fresh pair of eyes. Sometimes by creating automated regression tests so that the team don't make common mistakes in the future and can verify easily that they haven't broken anything with a change. If you think you are testing the same thing again you probably aren't adding much value, but you can be adding value without every test you carry out ending in filling a bug report.